package com.spring.mvc.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.spring.mvc.bean.T0003maesDire;
import com.spring.mvc.bean.T0008maesDepa;
import com.spring.mvc.bean.T0009maesProv;
import com.spring.mvc.bean.T0010maesDist;
import com.spring.mvc.service.DepartamentoService;
import com.spring.mvc.service.DireccionService;
import com.spring.mvc.service.DistritoService;
import com.spring.mvc.service.ProvinciaService;

/**
 * Todos los elementos estan precargados en esta clase, si no existen, se cargan de la base de datos, solo una vez
 */
@Controller("comboModelActionBean")
@Scope("session")
public class ComboModelActionBean {

@Autowired
private DepartamentoService departamentoService;

@Autowired
private ProvinciaService provinciaService;

@Autowired
private DistritoService distritoService;

@Autowired
private DireccionService direccionService;

   private List<T0008maesDepa> listaDepartamentos; 
   private List<T0009maesProv> listaProvincias;
   private List<T0010maesDist> listaDistritos;   
   private List<T0003maesDire> listaPadronDirec;
   
	public List<T0008maesDepa> getListaDepartamentos() {
		if(listaDepartamentos==null)
			try {
				listaDepartamentos = departamentoService.selectAllDepartamento();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return listaDepartamentos;
	}
//	public List<T0009maesProv> getListaProvincia() {
//		if(listaProvincias==null)
//			try {
//				listaProvincias = provinciaService.selectAllProvincia();
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		return listaProvincias;
//	}
	
	
	public List<T0009maesProv> getListaProvincia(String codDepa){
		// leer de BD
//		listaProvincias=new ArrayList<T0009maesProv>();
//		T0009maesProv prov=new T0009maesProv();
//		prov.setCodDepa("15");
//		prov.setCodProv("01");
//		prov.setNomProv("Lima");
//		if(listaProvincias==null || listaProvincias.size()==0){
			try {
				listaProvincias=provinciaService.selectAllProvincia(codDepa);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
//		}
		
		//listaProvincias.add(prov);
		////////////
		return listaProvincias;
	}
	public List<T0010maesDist> getListaDistrito(String codDepa,String codProv){

			try {
				listaDistritos=distritoService.selectAllDistrito(codDepa, codProv);
			} catch (Exception e) {
			
				e.printStackTrace();
			}

		return listaDistritos;
	}
	public List<T0003maesDire> getListaPadronDirec(String ubigeo,String paranDirec){

		try {
			listaPadronDirec=direccionService.selectAllDireccion(ubigeo, paranDirec);
		} catch (Exception e) {
		
			e.printStackTrace();
		}

	return listaPadronDirec;
}


	
}
//	public List<T0010maesDist> getListaDistrito(String codDepa,String codProvincia){
//		// leer de BD
//		listaDistritos=new ArrayList<T0010maesDist>();
//		T0010maesDist distrito=new T0010maesDist();
//		distrito.setCodDepa("15");
//		distrito.setCodProv("01");
//		distrito.setCodDist("01");
//		distrito.setNomDist("Lima");
//		listaDistritos.add(distrito);
//		distrito=new T0010maesDist();
//		distrito.setCodDepa("15");
//		distrito.setCodProv("01");
//		distrito.setCodDist("02");
//		distrito.setNomDist("Ancon");
//		listaDistritos.add(distrito);
//		distrito=new T0010maesDist();
//		distrito.setCodDepa("15");
//		distrito.setCodProv("01");
//		distrito.setCodDist("03");
//		distrito.setNomDist("Ate");
//		////////////
//		return listaDistritos;
//	}
//}
